19 research outputs found
Augmenting Source Code Lines with Sample Variable Values
Source code is inherently abstract, which makes it difficult to understand.
Activities such as debugging can reveal concrete runtime details, including the
values of variables. However, they require that a developer explicitly requests
these data for a specific execution moment. We present a simple approach,
RuntimeSamp, which collects sample variable values during normal executions of
a program by a programmer. These values are then displayed in an ambient way at
the end of each line in the source code editor. We discuss questions which
should be answered for this approach to be usable in practice, such as how to
efficiently record the values and when to display them. We provide partial
answers to these questions and suggest future research directions
Automating Test Case Identification in Open Source Projects on GitHub
Software testing is one of the very important Quality Assurance (QA)
components. A lot of researchers deal with the testing process in terms of
tester motivation and how tests should or should not be written. However, it is
not known from the recommendations how the tests are actually written in real
projects. In this paper the following was investigated: (i) the denotation of
the test word in different natural languages; (ii) whether the test word
correlates with the presence of test cases; and (iii) what testing frameworks
are mostly used. The analysis was performed on 38 GitHub open source
repositories thoroughly selected from the set of 4.3M GitHub projects. We
analyzed 20,340 test cases in 803 classes manually and 170k classes using an
automated approach. The results show that: (i) there exists weak correlation (r
= 0.655) between the word test and test cases presence in a class; (ii) the
proposed algorithm using static file analysis correctly detected 95\% of test
cases; (iii) 15\% of the analyzed classes used main() function whose represent
regular Java programs that test the production code without using any
third-party framework. The identification of such tests is very low due to
implementation diversity. The results may be leveraged to more quickly identify
and locate test cases in a repository, to understand practices in customized
testing solutions and to mine tests to improve program comprehension in the
future.Comment: 31 page